package user;

import book.BookList;
import openation.IOperation;

public abstract class User {
    /**
     * 创建一个抽象类User，用户
     * 定义两个成员变量String类型的name和IOperation[]类型的iOperations数组
     * 创建一个带有参数的构造方法，获取当前输入的对象
     * 定义一个抽象方法menu（），返回值的int
     * 定义一个doOperation方法，参数为整型choice和BookList类型的书架
     * 给数组iOperations传入下标choice，调用方法work，传参类型bookList
     * 根据下标不同，调用的书籍不同
     */
    protected String name;

    public IOperation[] iOperations;

    public User(String name) {
        this.name = name;
    }

    public abstract int menu();

    public void doOperation(int choice, BookList bookList) {

        iOperations[choice].work(bookList);

    }
}
